<?php
header('Content-type: text/html; charset=utf-8');
include('includes/config.php');
include('includes/fonctions.php');
$messageErrMail = 'Page : validation-compte.php<br />';

/*
 * Récupération du code de validation et de l'id
 */
if ((isset($_GET['code'])) && (isset($_GET['id']))) {
    //on vérifie que l'id est bien un int
    $id = htmlspecialchars(intval($_GET['id']));

    //gérer le cas ou le compte est déjà validé, donc pas besoin de faire tout cela
    
    
//on vérifie le code est bien compose de chiffres et de lettre
    $code = htmlspecialchars($_GET['code']);
    if (!preg_match('/[^a-zA-Z0-9 ]/i', $code)) {
        //On a tout alors on peut lancer la requête pour vérifier les deux
        $connection = connexionBdd();
        $select = $connection->prepare('SELECT `validation_code` FROM `validation` WHERE `validation_membres`= :id AND `validation_date`=\'0000-00-00 00:00:00\' ');
        $select->setFetchMode(PDO::FETCH_OBJ);
        $select->bindParam(':id', $id, PDO::PARAM_INT);
        try {
            $select->execute();
            $countSelect = $select->rowCount();
            if ($countSelect > 0) {
                $enregistrement = $select->fetch();
                $select->closeCursor();

                if ($code == $enregistrement->validation_code) {

                    //code correct on valide le compte pour cela deux requêtes
                    $updateValidation = $connection->prepare('UPDATE `validation` SET `validation_date` = NOW() WHERE `validation_membres` = :id');
                    $updateValidation->bindParam(':id', $id, PDO::PARAM_INT);                    
                    $updateValidation->execute();
                    $countUpdateValidation = $updateValidation->rowCount();
                    $updateValidation->closeCursor();

                    if ($countUpdateValidation == 1) {
                        $updateBanni = $connection->prepare('UPDATE `membres` SET `membre_banni` = 0 WHERE `membre_id` =:id');
                        $updateBanni->bindParam(':id', $id, PDO::PARAM_INT);
                        $updateBanni->execute();
                        $countUpdateBanni = $updateBanni->rowCount();
                        $updateBanni->closeCursor();
                        if ($countUpdateBanni == 1) {
                            $msg = '<div class="success">Votre compte est validé.</div>
                                <p>La validation de votre compte est un succès. Vous pouvez à présent profiter pleinement des services qu\'offre ' . $nomSite . '</p>
                                <a href="' . $urlSite . '">Accueil</a>';
                        } else {
                            $msg = '<div class="warning">Erreur lors de la validation de votre compte</div>
                                <p>La validation de votre compte à échouée, notre équipe technique est prévenue et met en oeuvre tout son savoir afin de corriger le soucis.</p>';
                            $messageErrMail .= 'id_membre = ' . $id . '<br />';
                            $messageErrMail .='code = ' . $code . '<br />';
                            $messageErrMail .='updateBanni != 1 ';
                            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                        }
                    } else {
                        $msg = '<div class="warning">Erreur lors de la validation de votre compte</div>
                            <p>La validation de votre compte à échouée, notre équipe technique est prévenue et met en oeuvre tout son savoir afin de corriger le soucis.</p>';
                        $messageErrMail .= 'id_membre = ' . $id . '<br />';
                        $messageErrMail .='code = ' . $code . '<br />';
                        $messageErrMail .='countUpdateValidation = ' . $countUpdateValidation . '<br />';
                        $messageErrMail .='updateValidation != 1 ';                        
                        error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
                    }
                } else {
                    $msg = '<div class="error">Code de validation incorrect</div>
                        <p>Merci de cliquer sur le lien reçu dans l\'email de confirmation</p>
                        <p>Si vous n\'avez plus ce mail vous pouvez cliquez sur ce lien, pour un nouveau mail de validation.</p>';
                }
            } else {
                $msg = '<div class="warning">Votre compte n\'a pas besoin d\'être validé.</div>
                        <a href="' . $urlSite . '">Accueil</a>';
                $messageErrMail .= 'id_membre =' . $id . '<br />';
                $messageErrMail .='code =' . $code . '<br />';
                $messageErrMail .='Tentative de validationd de compte inutile';
                error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
            }
        } catch (Exception $e) {
            $msg = 'Notre équipe de maintenance effectue une opération de maintenance de la base de donées.<br />Le site réouvrira ses portes rapidement, merci de votre confiance.';
            error_log($e->getMessage(), 1, $mailAdmin, $enteteErrLog);
        }
    } else {
        $msg = '<div class="error">Code de validation invalide</div>
                <p>Merci de cliquer sur le lien reçu dans l\'email de confirmation</p>
                <p>Si vous n\'avez plus ce mail vous pouvez cliquez sur ce lien, pour un nouveau mail de validation.</p>';
    }
} else {
    $msg = '<div class="error">Aucun code de validation</div>
            <p>Merci de cliquer sur le lien reçu dans l\'email de confirmation</p>
            <p>Si vous n\'avez plus ce mail vous pouvez cliquez sur ce lien, pour un nouveau mail de validation.</p>';
}

include('includes/haut.php');
?>

<div id="colonne_gauche">
    <?php
    include('includes/colg.php');
    ?>
</div>

<div id="contenu">
    <div id="map">
        <a href="index.php">Accueil</a>
    </div>

    <h1>Bienvenue sur mon super site !</h1>
    <p><?php echo $msg; 
   
    ?></p>
</div>

<?php
include('includes/bas.php');
?>
